تاریخ : چهار شنبه 25 مرداد 1391
نویسنده : hamidrezakhouri

بانك اطلاعاتی معروف MySQL كه اپن‌سورس است، طرفداران زیادی در بین برنامه‌نویسان دارد. MySQL علاوه بر آن‌كه یكی از نمونه‌های بسیار موفق نرم‌افزارهای منبع باز محسوب می‌شود

طرفداران زیادی در بین برنامه‌نویسان دارد. MySQL علاوه بر آن‌كه یكی از نمونه‌های بسیار موفق نرم‌افزارهای منبع باز محسوب می‌شود، مثالی از نرم‌افزاری است كه در اروپا (سوئد) پا به عرصه گذاشته است. نخستین نسخه این بانك اطلاعاتی توسط دو نفر از برنامه‌نویسان سوئدی نوشته شد و از آن پس بر اساس مدل نرم‌افزارهای منبع باز توسعه یافت. البته در میانه راه (یعنی در زمان عرضه نسخه سوم این نرم‌افزار) بر اساس توافقی میان شركت MySQL AB از یك سو و شركت معظم SAP (كه دارای خط تحقیق و توسعه بانك اطلاعاتی اختصاصی خود بود) از طرف دیگر، نسخه ویژه‌ای موسوم به MaxDB از تلفیق تكنولوژی‌های این دو شركت در فهرست محصولات MySQL قرار گرفت. اما شركت MySQL همچنان كار توسعه نسخه قبلی و منبع باز نرم‌افزار MySQL را تا این لحظه به موازات MaxDB ادامه داده است. طرف‌داران فلسفه نرم‌افزار‌های منبع باز همواره از MySQL به عنوان نمونه‌ای یاد می‌كنند كه توانسته است به‌خوبی با نمونه‌های بانك‌های اطلاعاتی اختصاصی همانندSQL server كه سرمایه‌گذاری‌های سنگینی برای توسعه آن انجام می‌شود، رقابت كند (هر چند كه مایكروسافت بر اساس یك سیاست كلی تنها رقیب خود را در زمینه بانك‌های اطلاعاتی، محصولا‌ت اوراكل می‌داند و اصولاً توجهی به نرم‌افزارهای منبع باز نمی‌كند). اما واقعیت آن است كه در دنیای برنامه‌نویسی این دو نرم‌افزار در رقابت تنگاتنگ قرار دارند. آخرین نسخه MySQL همراه مجموعه‌ای از قابلیت‌ها و امكانات عرضه شده است كه آنرا بیش از پیش به‌سمت كاربردهای <بزرگ مقیاس> سوق می‌دهد. برخی از ناظران معتقدند هدف اولیه تغییرات و پیشرفت‌های ارائه شده در نسخه ۵ این نرم‌افزار، بیش از هر چیز دیگری معطوف برنامه‌نویسی پیشرفته در كاربردهای گسترده و بزرگ است. یكی از منابع مورداستفاده در تهیه این مقاله در این زمینه چنین بیان می‌كند: <آیا زمان آن فرا رسیده است كه اوراكل باز گردد و به پشت‌سر خود نگاه كند؟> جالب است كه نویسنده در نوشته خود اصلاً اسمی از مایكروسافت و SQL server نیاورده است!

بانك‌اطلاعاتی سرور از نوع Embedded

اگرچه قابلیت استفاده از این بانك اطلاعاتی به صورت سرور Embedded موضوع جدیدی محسوب ن-م-ی‌ش-ود و از نسخه ۴ MySQL به بعد همواره وجودداشته است، اما این ویژگی از سوی كاربران همچنان نسبتاً ناشناخته باقی‌مانده است. استفاده از موتور نرم‌افزاری این بانك اطلاعاتی به صورت Embedded با توجه به آن‌كه این نرم‌افزار از نظر توابع API به‌طور كامل با مدل Client/Server سازگاری دارد، بسیار ساده است. در واقع برای به‌كارگیری این نرم‌افزار به صورت Embedded تنها كافی است تا یك تغییر كوچك در سورس كد (نسبت به روش معمول) اعمال شود. نمونه‌ای از یك قطعه كد به زبان C (كه در گوشه و كنار اینترنت به فراوانی یافت می‌شود) این مطلب را به‌خوبی نمایش می‌دهد. (به قطعه كد شماره یك مراجعه نمایید)

Unionها

یونیون‌ها موجوداتی هستند كه امكان تركیب دو یا چند Query را در یك DataSet فراهم می‌كنند (البته با فرض این كه اسامی ستون، نوع داده و ترتیب فیلد مطابقت داشته باشند). یونیون‌ها مكانیسم بسیار قدرتمندی برای انواع گوناگون جستجو‌های پیشرفته محسوب می‌شوند. به‌طور معمول زمانی یونیون‌ها به‌كار برنامه‌نویسان می‌آیند كه در كاربردهای مورد نظر آن‌ها، دو جدول شامل اطلاعات نسبتاً مرتبط وجود داشته باشند. به عنوان مثال، در صورتی‌كه در ساختار یك بانك اطلاعاتی، یك جدول شامل اطلاعات فروشندگان باشد و جدول دیگری برای ثبت داده‌های شركت‌های فروشنده لوازم ساختمانی به‌كار رفته باشد، می‌توان از یونیون برای جستجوی همزمان در دو جدول و به‌دست آوردن یك مجموعه پاسخ یا result set بهره گرفت.

SubQueryها

از SubQuery‌ها و جداول مشتق شده برای قرار دادن عبارات انتخابی در یك SQL Statement دیگر استفاده می‌شود. مثلاً اگر در بخش FROM عبارت جستجوی خود از یك عبارت SELECT دیگر استفاده كنید، در این صورت، عبارت SELECT خارجی از نتایج به‌دست آمده از عبارت SELECT به‌كار رفته در بخش FROM كلی جستجو، استفاده خواهد كرد. این ویژگی هم یكی از ابزارهای قدرتمندی است كه در كاربردهای پیشرفته به كمك برنامه‌نویسان می‌آید.

عبارات از قبل آماده

برنامه‌نویسان آشنا با گرامر عبارات ODBC ازپیش آماده (ODBC Prepared statement) از این پس می‌توانند %


|
امتیاز مطلب : 9
|
تعداد امتیازدهندگان : 2
|
مجموع امتیاز : 2
موضوعات مرتبط: مقالات MY SQL , ,
تاریخ : چهار شنبه 25 مرداد 1391
نویسنده : hamidrezakhouri

نصب و پیکربندی سرویس دهنده بانک اطلاعاتی MySQL

امروزه نگهداری بانک های اطلاعاتی مختلف، یکی از عمده ترین کاربردهای سرویس دهنده های موجود بر روی شبکه ها می باشد. بانک های اطلاعاتی اختصاصی زیادی بر روی دبیان گنو/ لینوکس قابل استفاده هستند، ولی دو سیستم سرویس دهنده بانک اطلاعاتی آزاد و بازمتن که معمولا به همراه توزیع های رایج گنو/ لینوکس ارائه می شوند، عبارتند از بانک های اطلاعاتی MySQL و PostgreSQL .
سرویس دهنده بانک اطلاعاتی PostgreSQL سرویس دهنده ای با قابلیت های فنی بسیار بالاست که می تواند با سرویس دهنده های اختصاصی مانند Oracle رقابت کند. سرویس دهنده MySQL یک سرویس دهنده سبکتر و با سرعت بسیار بالاست که امروزه در سطوح گسترده ای به عنوان سرویس دهنده نرم افزارهای تحت وب و سایت های وب بکار گرفته می شود. در این مقاله، ما به سرویس دهنده بانک اطلاعاتی MySQL بر روی توزیع دبیان گنو/لینوکس خواهیم پرداخت. سایت رسمی MySQL در آدرس http://www.mysql.org قرار دارد که در آن می توانید به تعداد زیادی مستندات راهنما به همراه یک انجمن فعال کاربران دسترسی داشته باشید.

نصب سرویس دهنده MySQL
نسخه پیش گزیده سرویس دهنده MySQL که بر روی دبیان گنو/ لینوکس ۳.۱ موجود است، نسخه ۴ می باشد که پایدار بوده و بسیاری از نرم افزارهای کاربردی با آن سازگاری دارند. نسخه جدیدتر این سرویس دهنده که نسخه ۴.۱ می باشد نیز به همراه دبیان گنو/ لینوکس ۳.۱ ارائه شده که در صورت نیاز می توانید از آن استفاده کنید. نصب سرویس دهنده بانک اطلاعاتی MySQL بسیار آسان می باشد. کافی است دستور apt-get install mysql-server را وارد نمایید. در هنگام نصب، هشداری در مورد کلمات عبور نمایش داده شده و سوالاتی در مورد اجرای خودکار سرویس دهنده در هنگام بوت سیستم و حذف بانک های اطلاعاتی قدیمی موجود بر روی سیستم پرسیده خواهد شد.

# apt-get install mysql-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed :
mysql-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded .
Need to get 0B/3641kB of archives .
After unpacking 8806kB of additional disk space will be used .
Preconfiguring packages ...
Selecting previously deselected package mysql-server .
(Reading database ... 130011 files and directories currently installed . )
Unpacking mysql-server (from .../mysql-server_4.0.23-4_i386.deb) ...
Setting up mysql-server (4.0.23-4) ...
Starting MySQL database server: mysqld .
Checking for crashed MySQL tables in the background .

برای نصب نسخه ۴.۱ نیز می توانید از دستور apt-get install mysql-server4.1 استفاده نمایید. البته توجه داشته باشید که در یک زمان تنها یکی از نسخه های ۴ یا ۴.۱ را می توانید بر روی سرویس دهنده خود داشته باشید.

پیکربندی و مدیریت سرویس دهنده MySQL
بسته دبیان سرویس دهنده MySQL حاوی بسیاری از تنظیمات لازم می باشد. فایل پیکربندی اصلی سرویس دهنده MySQL در مسیر etc/mysql/my.cnf / قرار دارد و در آن تنظیماتی از قبیل شماره درگاه، نام کاربری که سرویس دهنده با استفاده از آن اجرا می شود، مسیر قرار گیری فایل های مربوط به بانک های اطلاعاتی، فایل های ثبت رخداد و غیره می باشد. بسته MySQL دبیان طوری تنظیم شده است که پس از نصب سرویس دهنده، امکان اتصال به درگاه آن از خارج از سیستم سرویس دهنده امکان پذیر نخواهد بود. این گزینه در امنیت کلی سرویس دهنده بسیار موثر می باشد. نام کاربر و گروهی که هنگام نصب بسته دبیان سرویس دهنده MySQL بر روی سیستم ساخته می شود است.
هنگامی که سرویس دهنده MySQL نصب می شود، بطور پیش گزیده، هیچ کلمه عبوری برای کاربر ریشه که مدیر سرویس دهنده می باشد، در نظر گرفته نشده است. به عنوان مدیر سرویس دهنده، نخستین و تنها تنظیم ضروری که باید بر روی سرویس دهنده MySQL انجام دهید، ایجاد یک کلمه عبور برای کاربر ریشه می باشد. به این منظور، باید با استفاده از کنسول سرویس دهنده، به آن وارد شوید. از این پس نیز برای انجام تمامی کارها و امور مدیریتی خود بر روی سرویس دهنده مانند ایجاد و مدیریت بانک های اطلاعاتی، ایجاد کاربران جدید، تنظیم مجوزهای دسترسی و غیره از این کنسول استفاده خواهید کرد که جلوتر به آنها خواهیم پرداخت. برای ورود به کنسول سرویس گیرنده MySQL ، دستور زیر را وارد کنید:

# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g .
Your MySQL connection id is 823 to server version: 4.0.23_Debian-4-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer .
Mysql>

پس از تایپ دستور، همانطور که در کد نمونه بالا مشاهده می کنید، اعلان فرمان سرویس دهنده MySQL به نمایش در خواهد آمد. گزینه u - در دستور بالا نمایانگر نام کاربری است. در دستور بالا با استفاده از کاربر ریشه وارد سرویس دهنده شده ایم. همانطور که مشاهده می کنید، هیچ کلمه عبوری از ما در خواست نشده است. نحوه استفاده از این دستور به شکل زیر می باشد:

# mysql [OPTIONS] [database]

گزینه های مهم قابل استفاده با این دستور عبارتند از گزینه u - که در بالا شرح داده شد و نمایانگر نام کاربری است که مایل هستید با استفاده از آن به سرویس دهنده متصل شوید، گزینه p - که برای ارسال کلمه عبور و یا نمایش اعلان درخواست کلمه عبور بر روی سرویس دهنده به کار می رود. پس ا زاین دو گزینه نیز می توانید نام بانک اطلاعاتی را که مایل هستید بر روی آن کار کنید را وارد کنید.
در نخستین قدم، برای اینکه کلمه عبور ریشه را بر روی سرویس دهنده تنظیم کنیم، در کنسول MySQL باید دستورات زیر را وارد کنیم:

# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or g .
Your MySQL connection id is 9 to server version: 4.0.23_Debian-4-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer .
mysql> grant all privileges on *.* to root@localhost identified by 'password ';
Query OK, 0 rows affected (0.19 sec)
Mysql>

در دستور بالا به سرویس دهنده می گوییم که تمامی مجوزهای دسترسی را به تمامی بانک های اطلاعاتی، به کاربر root که از ماشین محلی به سیستم متصل می شود و دارای کلمه عبور password است، اعطاء کن. توجه داشته باشید که بجای password باید کلمه عبور مورد نظرتان را برای کاربر ریشه، وارد نمایید. با تایپ دستور quit از کنسول خارج شده و به پوسته فرمان باز خواهید گشت. توجه داشته باشید که در پایان تمامی دستوراتی که در کنسول MySQL وارد می کنید، باید علامت سمی کالن یا «;» را قرار دهید. اکنون مجددا سعی می کنیم تا با دستور قبل به سرویس دهنده متصل شویم:

# mysql -u root
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO )

همانطور که مشاهده می کنید، این بار دیگر امکان دسترسی به سرویس دهنده، بدون استفاده از کلمه عبور وجود ندارد. برای اینکه سرویس دهنده هنگام ورود از ما تقاضای کلمه عبور نماید، گزینه p - را به دستور فوق اضافه می کنیم. به مثال زیر توجه کنید:

# mysql -u root -p
Enter password :

این امکان وجود دارد تا کلمه عبور خود را بلافاصله و چسبیده به گزینه p - برای سرویس دهنده ارسال کنید. فقط در این صورت، کلمه عبور بر روی صفحه نمایش قابل مشاهده خواهد بود که انجام این کار را از نظر امنیتی توصیه نمی کنم.

آشنایی بیشتر با کنسول MySQL
کنسول MySQL خود دارای تعدادی فرمان داخلی می باشد که از آنها برای امور مدیریتی خود استفاده خواهید کرد. با تایپ دستور help در این کنسول، لیستی از این فرامین نمایش داده خواهد شد. به نمونه زیر توجه کنید:

mysql> help
For the complete MySQL Manual online visit :
http://www.mysql.com/documentation
For info on technical support from MySQL developers visit :
http://www.mysql.com/support
For info on MySQL books, utilities, consultants, etc. visit :
http://www.mysql.com/portal
List of all MySQL commands :
(Commands must appear first on line and end with ';' )
help (h) Display this help .
? (?) Synonym for `help '.
clear (c) Clear command .
connect (r) Reconnect to the server. Optional arguments are db and host .
edit (e) Edit command with $EDITOR .
ego (G) Send command to mysql server, display result vertically .
exit (q) Exit mysql. Same as quit .
go (g) Send command to mysql server .
nopager (n) Disable pager, print to stdout .
notee (t) Don't write into outfile .
pager (P) Set PAGER [to_pager]. Print the query results via PAGER .
print (p) Print current command .
prompt (R) Change your mysql prompt .
quit (q) Quit mysql .
rehash (#) Rebuild completion hash .
source (.) Execute a SQL script file. Takes a file name as an argument .
status (s) Get status information from the server .
system (!) Execute a system shell command .
tee (T) Set outfile. Append everything into given outfile .
use (u) Use another database. Takes database name as argument .
Connection id: 812 (Can be used with mysqladmin kill)
mysql >

دستورات مهم عبارتند از:
exit و quit برای خروج از اعلان فرمان MySQL .
system برای اجرای دستورات سیستمی و خط فرمان از داخل اعلان MySQL ,
use برای تغییر بانک اطلاعاتی قابل استفاده و فعال که فرامین SQL بر روی آن اجرا خواهد شد. برای مثال use test بانک اطلاعاتی test را آماده دریافت دستورات خواهد کرد.
دستورات دیگری را که در کنسول MySQL می توانید وارد کنید، دستورات زبان SQL می باشد. برای این منظور باید با این زبان آشنا باشید. در زیر چند مثال نمایش داده شده است:

برای ایجاد بانک های اطلاعاتی جدید:

mysql> create database mydatabase ;

برای ایجاد کاربران جدید و دادن مجوز بر روی یک بانک اطلاعاتی:

mysql> grant all privileges on mydatabase.* to user@localhost identified by 'password ';

برای نمایش بانک های اطلاعاتی موجود بر روی سیستم:

mysql> show databases ;

برای نمایش جداول موجود بر روی یک بانک اطلاعاتی خاص:

mysql> use mydatabase ;mysql> show tables ;

برای حذف یک بانک اطلاعاتی:

mysql> drop database mydatabase ;

برای حذف یک جدول موجود بر روی یک بانک اطلاعاتی خاص:

mysql> use mydatabase ;mysql> drop table mytable ;

برای حذف دسترسی یک کاربر بر روی یک بانک اطلاعاتی خاص:

mysql> revoke all privileges on mydatabase.* from user@localhost ;

همانند آنچه که در پوسته فرمان سیستم دیدید، کنسول MySQL نیز دستورات تایپ شده را در یک تاریخچه نگهداری می کند. با استفاده از کلیدهای مکان نما در این کنسول، می توانید بین این دستورات حرکت کرده و در صورت لزوم از آنها استفاده کنید.
علاوه بر کنسول MySQL ، دستوری نیز به نام mysqladmin وجود دارد که از آن می توانید برای امور مدیریتی مانند ایجاد بانک های اطلاعاتی، تنظیم مجوزهای دسترسی، تنظیم کلمات عبور و غیره استفاده کنید. برای اطلاعات دقیق تر می توانید به مستندات این دستور مراجعه کنید.

مدیریت سرویس دهنده MySQL
برای راه اندازی و توقف سرویس دهنده MySQL خود در مواقع لزوم می توانید از دستور زیر استفاده کنید. گزینه start برای راه اندازی، گزینه stop برای توقف و گزینه restart جهت راه اندازی مجدد سرویس دهنده بکار می روند:

# /etc/init.d/mysql
Usage: /etc/init.d/mysql start|stop|restart|reload|force-reload
# /etc/init.d/mysql start
Starting MySQL database server: mysqld .
Checking for crashed MySQL tables in the background .

کلیه فرامینی که در سرویس دهنده MySQL اجرا می شوند، در یک فایل ثبت رخداد به نام mysql.log که در مسیر var/log/mysql / قرار دارد، ثبت می شوند. بنابراین در مواقع لزوم می توانید این فایل را زیر نظر داشته باشید.


|
امتیاز مطلب : 5
|
تعداد امتیازدهندگان : 2
|
مجموع امتیاز : 2
موضوعات مرتبط: مقالات MY SQL , ,
تاریخ : چهار شنبه 25 مرداد 1391
نویسنده : hamidrezakhouri

پشتیبان گیری از بانک های اطلاعاتی MySQL

امروزه با همه گیر شدن سایت های پویا، بسیاری از سرویس دهنده های وب که این نرم افزارهای کاربردی وب را اجرا می کنند، دارای تعداد زیادی بانک اطلاعاتی هستند که همانند فایل های دیگر نیاز است تا بصورت مرتب از آنها نسخه های پشتیبان تهیه شود. گاهی اهمیت نسخه های پشتیبان از بانک های اطلاعاتی از نسخه های پشتیبان فایل سیستم بیشتر است. دلیل آن هم روشن است، بسیاری از اطلاعات مهم در بانک های اطلاعاتی ذخیره می شوند نه در فایل سیستم!
در مقاله حاضر اسکریپتی را ایجاد خواهیم کرد که عمل پشتیبان گیری را بطور خودکار بر روی یک سرویس دهنده ثالث در ساعات خاصی از روز انجام دهد. اتصال به سرویس دهنده ثالث می تواند بصورت اشتراک های nfs و یا از طریق ssh صورت پذیرد.

در قدم نخست باید موارد ابتدایی و لازم برای انجام پشتیبان گیری را فراهم کرد. نخست باید بر روی سرویس دهنده بانک اطلاعاتی MySQL کاربری را ایجاد کرد که دارای حداقل دسترسی برای خواندن و ذخیره اطلاعات باشد. برای این منظور دستورات زیر را وارد می کنیم:

mainserver# mysql -u root -p
mysql> grant select,lock tables on *.* to bkuser@localhost identified by 'bkpass ';

بجای bkuser و bkpass می توانید نام کاربر و کلمه عبور مورد نظر خودتان را استفاده نمایید.
در صورتی که بخواهید تا فایل های نسخه های پشتیبان از طریق ssh در سرویس دهنده مقصد کپی شوند، باید چند کار اضافه تر نیز انجام دهید. بدلیل اینکه ارتباط باید بصورت خودکار و بدون دخالت کاربر صورت گیرد، باید عملیاتی را انجام داد تا باعث شود تا سرویس دهنده اصلی بتواند بدون نیاز به کلمه عبور به سرویس دهنده مقصد متصل گردد. برای این کار از روش ارسال کلید عمومی ssh سرویس دهنده مقصد بر روی سرویس دهنده اصلی استفاده می شود. برای ایجاد کلیک عمومی ssh بر روی سرویس دهنده مقصد، دستور زیر را وارد نمایید:

backupserver$ ssh-keygen -t dsa -f $HOME/.ssh/id_dsa -P ''
backupserver$ chmod -R 700 .ssh /

سپس فایل id_dsa.pub موجود در شاخه ssh . را در شاخه root/.ssh / سرویس دهنده اصلی با نام authorized_keys2 کپی نمایید:

backupserver$ scp .ssh/id_dsa.pub root@mainserver:/root/.ssh/authorized_keys2

بسته به شماره نسخه سرویس دهنده ssh ای که بر روی سرویس دهنده اصلی در حال اجراست، ممکن است نیاز داشته باشید تا نام فایل authorized_keys2 به authorized_keys تغییر داده شود. برای این منظور می توانید یک لینک از آن به فایل authorized_keys ایجاد کنید:

mainserver# ln -s /root/.ssh/authorized_keys2 /root/.ssh/authorized_keys

نکته مهمی که باید رعایت کنید این است که کلید عمومی یک کاربر غیر از کاربر ریشه را بر روی سرویس اصلی قرار دهید تا در صورتی که احتمالا سرویس دهنده اصلی شکسته شود، امکان دسترسی کامل نفوذگر بر روی سرویس دهنده پشتیبان فراهم نگردد. برای مثال می توانید یک کاربر با نام backup بر روی سرویس دهنده مقصد ایجاد کنید. پس از کپی کلید بر روی سرویس دهنده اصلی، مجوز آنرا برای امنیت بیشتر بر روی 600 تنظیم کنید:

mainserver# chmod 600 /root/.ssh/authorized_keys *

در مرحله بعدی شاخه ای را که فایل های پشتیبان در آن ذخیره خواهد شد را بر روی سرویس دهنده مقصد ایجاد می کنیم:

backupserver$ mkdir /home/backup/bkstore /

اکنون تمامی مقدمات برای بکارگیری اسکریپت پشتیبان گیری از بانک اطلاعاتی انجام شده است. اسکریپت مورد استفاده ما دارای ساختاری به شکل زیر است:

# !/bin/sh
DATESTAMP="`date +%Y-%m-%d `
echo -n "Processing Auto DB Backup...”
echo

cd /var/lib/mysql /
for x in *
do
if [ $x = "my.cnf" ]; then
echo $x
echo "invalid DB...”
else
echo $x
echo "valid DB...”
mysqldump -u bkuser -pbkpass $x > /root/dbs/tmp/$x.$DATESTAMP.sql
fi
done
cd /root/dbs /
rm `find tmp/ -size 0 `
echo "Compressing DB Backups...”
tar -czf dbs.$DATESTAMP.tar.gz tmp / *
rm tmp/*.sql
echo "Copying DBs...”
scp dbs.$DATESTAMP.tar.gz backup@backupserver:/home/backup/bkstore /
cd

همانطور که مشاهده می کنید، نحوه عمل این اسکریپت بسیار ساده است. اسکریپت وارد شاخه var/lib/myslq / که در آنجا بانک های اطلاعاتی ذخیره می شود شده و با استفاده از یک حلقه ساده for و دستور mysqldump شروع به پشتیبان گیری از بانک های اطلاعاتی می کند. در نهایت نیز تمامی فایل ها را بصورت فشرده در آورده و با استفاده از دستور scp بر روی سرویس دهنده مقصد کپی می کند. در صورتی که سرویس دهنده مقصد با استفاده از اشتراک nfs به سرویس دهنده اصلی متصل بود، تنها به یک دستور cp اکتفا می کردیم و نیازی به بکارگیری کلیدهای عمومی ssh وجود نداشت ولی امنیت در هنگام انتقال اطلاعات در حالت دوم یعنی بکارگیری ssh بیشتر است.

اسکریپت بالا را با نامی مانند mysqlbk در مسیر root / ذخیره کرده و مجوز اجرا به آن می دهیم:

mainserver# chmod +x mysqlbk

برای اینکه عملیات پشتیبان گیری بصورت خودکار و در ساعت خاصی از روز انجام گیرد، می توانیم از cron استفاده کنیم. دستور زیرا را تایپ کرده:

mainserver# crontab -e

سپس خط زیر را وارد می کنیم:

0 3 * * * /root/mysqlbk

از این پس هر روز در ساعت ۳ صبح عملیات پشتیبان گیری و کپی بر روی سرویس دهنده مقصد بصورت خودکار انجام خواهد شد.
برای افزایش ضریب اطمینان می توان اسکریپت خودکاری را بر روی سرویس دهنده مقصد تعبیه کرد که فایل های پشتیبان را به محل امن دیگری انتقال دهد.

با ایجاد تغییرات کوچکی در اسکریپت فوق می توان از آن برای پشتیبان گیری دایرکتوری های خانگی کاربران نیز استفاده کرد.


|
امتیاز مطلب : 8
|
تعداد امتیازدهندگان : 3
|
مجموع امتیاز : 3
موضوعات مرتبط: مقالات MY SQL , ,

صفحه قبل 1 صفحه بعد

آخرین مطالب

/
از این که به وبلاگ من سر زدید خیلی خیلی ممنونم باتشکر حمیدرضاخوری